草庐IT

C++ 多重虚拟继承与 COM

全部标签

c# - 带有虚拟化的 ScrollIntoView 和 ListView

我有ListView(虚拟化默认开启),ItemsSource绑定(bind)到ObservableCollection属性。填充数据时(设置属性并发出通知)我在分析器中看到2个布局峰值,第二个发生在调用listView.ScrollIntoView()之后。我的理解是:ListView通过绑定(bind)加载数据并为屏幕上的项目创建ListViewItem,从索引0开始。然后我调用listView.ScrollIntoView()。现在ListView第二次执行此操作(创建ListViewItems)。如何防止去虚拟化发生两次(我不希望在ScrollIntoView发生之前发生一次)

c# - 大型可滚动数据 SL4 的虚拟化性能问题

问题:在可滚动区域显示大量数据会带来糟糕的性能和/或用户体验。尝试过:主要是在ListBox中设置一个DataTemplate以显示填充数据的网格,其中VirtualizationMode设置为Recycle并且在ListBoxiteself上设置了固定高度。类似于下面的示例。ContentControl将引入标准从另一个View格式化填充项的整体布局,其中包含大约20个静态文本block和20个数据绑定(bind)文本block。这很好用,并将初始负载减半。但是,现在的问题是我需要高度不是固定大小的能力,因此它会占用其父项中的可用空间,甚至可以调整大小。感谢@DanFox我发现您必须

c# - 我如何使用 NUnit 创建一个通用的 BaseTest,我可以从它继承并从 base 运行测试?

所以基本上我有一个域对象和一个可以对该对象执行CRUD操作的通用存储库。publicinterfaceIBaseRepositorywhereT:BaseEntity{voidAdd(Tentity);voidRemove(Tentity);TById(intid);IEnumerableAll();}所以我有这个接口(interface)的多个实现,每个域对象一个。我想写一些集成测试(使用nunit),为此我想我会做一个BaseRepositoryTest-像这样:publicabstractclassBaseRepositoryTestswhereT:BaseEntity{publ

c# - DebuggerStepThrough 是否可以继承到自动生成的 IEnumerable 实现中?

DebuggerStepThrough属性允许您跳过进入某些方法/类/属性的步骤。在DebuggerStepThroughbeingignored澄清了c#编译器不会将此属性继承到编译器生成的IEnumerable执行。这种失败的一个简单例子是:staticvoidMain(string[]args){vara=SkipMe().ToList();}[System.Diagnostics.DebuggerStepThrough]staticIEnumerableSkipMe(){//commentoutlinebelowandthethrowwillbesteppedover.yiel

c# - 为什么值类型继承自引用类型?

这个问题在这里已经有了答案:HowdoValueTypesderivefromObject(ReferenceType)andstillbeValueTypes?(6个答案)System.ValueTypeUnderstanding(7个答案)关闭7年前。我有两个问题:我们知道所有类型都派生自Object,它是一个引用类型。我的问题是为什么int-这是一个value类型-继承自引用类型Object?这可能吗?如果int派生自Object,为什么我们在将int传递给需要的函数时需要装箱对象作为参数?通常,当您需要将派生类型的对象作为参数传递给期望基类型对象的函数时,使用引用,您不需要做任

c# - 从抽象类引用继承的 EntitySet 的 dapper PropInfo Setter 为 null

我正在尝试用一些简洁的查询替换令人讨厌的LINQ2SQL命中以提高性能。这样做时,我必须将一堆不同的对象编织在一起,以创建保存ASN信息所需的所有信息所需的大对象。我目前遇到的问题是抽象类Orders,该类由两个单独的类AutionOrder和MerchantOrder使用鉴别器属性实现。由于我无法使用dapper创建抽象类对象,因此我改用其中一个公共(public)类。但是,当它构建对象时,它在GetSettableProps内部失败,它找到了正确的DeclaringType但是GetProperty方法在它返回null时正在寻找internal或EntitySet的属性。我尝试使用

c# - 虚拟扩展方法?

我有一个在客户端应用程序和服务器应用程序中使用的类。在服务器应用程序中,我通过扩展方法向类添加了一些功能。效果很好。现在我想要更多:我的类(B)继承自另一个类(A)。我想将一个虚函数附加到A(比方说Execute()),然后在B中实现该函数。但仅限于在服务器中。Execute()方法需要做一些只能在服务器上做的事情,使用只有服务器知道的类型。有很多类型像B一样从A继承,我想为它们中的每一个实现Execute()。我希望我可以为A添加一个虚拟扩展方法,但这个想法似乎行不通。我正在寻找解决这个问题的最优雅的方法,有或没有扩展方法。 最佳答案

c# - 接口(interface)继承多个接口(interface) : how is this handled by a C# compiler?

最近我发现C#允许Aninterfacecaninheritfromoneormorebaseinterfaces.例如,Caliburn.Micro中的IScreen在http://caliburnmicro.codeplex.com/SourceControl/latest#src/Caliburn.Micro/IScreen.cs中执行此操作namespaceCaliburn.Micro{publicinterfaceIScreen:IHaveDisplayName,IActivate,IDeactivate,IGuardClose,INotifyPropertyChangedE

c# - 如何使 .NET COM 对象成为单元线程?

.NET对象默认是自由线程的。如果通过COM编码到另一个线程,它们总是被编码到自己,无论创建者线程是否为STA,也无论它们的ThreadingModel注册表值如何。我怀疑,他们汇总了FreeThreadedMarshaler(有关COM线程的更多详细信息,请参见here)。我想让我的.NETCOM对象在编码到另一个线程时使用标准的COM编码器代理。问题:usingSystem;usingSystem.Runtime.InteropServices;usingSystem.Threading;usingSystem.Threading.Tasks;usingSystem.Windows

c# - 注册免费 COM 与 C# 互操作,可能吗?

是否可以将免注册COM与Dotnet互操作和C#一起使用?如果是这样,如何在C#项目中添加对COM对象的引用?我有一个带有嵌入式list和两个测试客户端的无注册ATLCOM服务器dll,一个是cpp,另一个是c#。cpp客户端使用import语句正确引用COM对象,或者#pragmacomment(linker,"\"/manifestdependency:type='win32'name='TestComSvr2'version='1.0.0.0'\"")或在Linker->ManifestFile选项下将“AdditionalManifestDependencies”设置为“typ